package br.com.exemplo.sqlite;

import android.content.Context;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class SQLiteHelper extends SQLiteOpenHelper {
	public static final String TAG = "SQLiteHelper";
	public static final String DATABASE_NAME = "Carona";
	public static final int DATABASE_VERSION = 1;
	private String scriptSQLCreate;
	private String scriptSQLDelete;

	public SQLiteHelper(Context context, String databaseName,
			int databaseVersion, String scriptSQLCreate, String scriptSQLDelete) {
		super(context, databaseName, null, databaseVersion);
		this.scriptSQLCreate = scriptSQLCreate;
		this.scriptSQLDelete = scriptSQLDelete;
	}

	/**
	 * Cria a base de dados.
	 */
	@Override
	public void onCreate(SQLiteDatabase db) {
		try {
			db.execSQL("CREATE TABLE usuarios ("
					+ "_id INTEGER NOT NULL PRIMARY KEY,"
					+ "nome TEXT,"
					+ "email TEXT,"
					+ "telefone TEXT, nascimento TEXT, carteira TEXT, altura DOUBLE, peso DOUBLE,"
					+ "user TEXT, senha TEXT)");
			db.execSQL("CREATE TABLE rota ("
					+ "_id INTEGER NOT NULL PRIMARY KEY,"
					+ "dataPartida TEXT,"
					+ "dataChegada TEXT,"
					+ "horaPartida TEXT, horaChegada TEXT, localPartida TEXT, localChegada TEXT,"
					+ "cidadeChegada TEXT, cidadePartida TEXT, estado TEXT, desvio INTEGER, atraso INTEGER, FOREIGN KEY(_id) REFERENCES usuarios(_id))");
		} catch (SQLException e) {
			Log.e(TAG, e.toString());
		}
	}
	
	/**
	 * Faz o upgrade da base de dados.
	 */
	@Override
	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
		try {
			// Exclui a tabela anterior
			db.execSQL(scriptSQLDelete);
			// Cria a nova tabela
			onCreate(db);
		} catch (SQLException e) {
			Log.e(TAG, e.toString());
		}
	}
}
